﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ModuloAdministrativo
{
    public partial class EntregasForm : Form
    {
        WSsiar.ServicosSIARSoapClient ws = new WSsiar.ServicosSIARSoapClient();

        public EntregasForm()
        {
            InitializeComponent();
            atualizarListView();
        }

        public void atualizarListView()
        {
            WSsiar.VendaBean[] listaDeVendas = ws.VendaListar();
            esperaLV.Items.Clear();
            entregaLV.Items.Clear();
            finalizadoLV.Items.Clear();
            if (listaDeVendas.Length != 0)
            {
                for (int i = 0; i < listaDeVendas.Length; i++)
                {
                    if (listaDeVendas[i].Estado.Equals("Em espera")&& listaDeVendas[i].Id_Cliente != 0)
                    {
                        int id = listaDeVendas[i].Id_Cliente;
                        string tel = "Default";
                        string descricao = "";

                        tel = ws.ClienteRecuperarTelefone(id);
                        WSsiar.PessoaBean cli = ws.ClienteBuscar(tel);
                        WSsiar.PedidoBean[] pedidos = ws.PedidosListarPorCliente(id);
                        foreach (WSsiar.PedidoBean p in pedidos)
                        {
                            if (p.Id_Bebida != 0)
                            {
                                descricao = descricao + " + " + ws.BebidaRecuperarDescricao(p.Id_Bebida);
                            }
                            else
                            {
                                descricao = descricao + " + " + ws.RecuperarPrato(p.Id_Prato).Nome;
                            }

                        }
 
                        ListViewItem item = new ListViewItem(listaDeVendas[i].Id.ToString());
                        item.SubItems.Add(id.ToString());
                        item.SubItems.Add(listaDeVendas[i].HoraA.TimeOfDay.ToString());
                        item.SubItems.Add(tel);
                        item.SubItems.Add(cli.Nome);
                        item.SubItems.Add(descricao);
                        esperaLV.Items.Add(item);
                    }
                    else if (listaDeVendas[i].Estado.Equals("Em entrega") && listaDeVendas[i].Id_Cliente != 0)
                    {
                        int id = listaDeVendas[i].Id_Cliente;
                        string tel = "Default";
                        string descricao = "";
                        string entreg = "";

                        tel = ws.ClienteRecuperarTelefone(id);
                        WSsiar.PessoaBean cli = ws.ClienteBuscar(tel);
                        WSsiar.PedidoBean[] pedidos = ws.PedidosListarPorCliente(id);

                        foreach (WSsiar.PedidoBean p in pedidos)
                        {
                            if (p.Id_Bebida != 0)
                            {
                                descricao = descricao + " + " + ws.BebidaRecuperarDescricao(p.Id_Bebida);
                            }
                            else
                            {
                                descricao = descricao + " + " + ws.RecuperarPrato(p.Id_Prato).Nome;
                            }

                        }
                        
                        
                        WSsiar.PessoaBean[] func = ws.FuncionarioListar();
                        foreach (WSsiar.PessoaBean p in func)
                        {
                            if (p.Id == listaDeVendas[i].Entregador)
                            {
                                entreg = p.Nome;
                            }
                        }

                        ListViewItem item = new ListViewItem(listaDeVendas[i].Id.ToString());
                        item.SubItems.Add(id.ToString());
                        item.SubItems.Add(listaDeVendas[i].HoraA.TimeOfDay.ToString());
                        item.SubItems.Add(tel);
                        item.SubItems.Add(cli.Nome);
                        item.SubItems.Add(descricao);
                        item.SubItems.Add(entreg);
                        entregaLV.Items.Add(item);
                    }
                    else if (listaDeVendas[i].Estado.Equals("Finalizado") && listaDeVendas[i].Id_Cliente != 0)
                    {
                        int id = listaDeVendas[i].Id_Cliente;
                        string tel = "Default";
                        string descricao = "";

                        tel = ws.ClienteRecuperarTelefone(id);
                        WSsiar.PessoaBean cli = ws.ClienteBuscar(tel);
                        WSsiar.PedidoBean[] pedidos = ws.PedidosListarPorCliente(id);

                        foreach (WSsiar.PedidoBean p in pedidos)
                        {
                            if (p.Id_Bebida != 0)
                            {
                                descricao = descricao + " + " + ws.BebidaRecuperarDescricao(p.Id_Bebida);
                            }
                            else
                            {
                                descricao = descricao + " + " + ws.RecuperarPrato(p.Id_Prato).Nome;
                            }

                        }
                        string entreg = "";
                        WSsiar.PessoaBean[] func = ws.FuncionarioListar();
                        foreach (WSsiar.PessoaBean p in func)
                        {
                            if (p.Id == listaDeVendas[i].Entregador)
                            {
                                entreg = p.Nome;
                            }
                        }

                        ListViewItem item = new ListViewItem(listaDeVendas[i].Id.ToString());
                        item.SubItems.Add(id.ToString());
                        item.SubItems.Add(listaDeVendas[i].HoraA.TimeOfDay.ToString());
                        item.SubItems.Add(listaDeVendas[i].HoraF.TimeOfDay.ToString());
                        item.SubItems.Add(tel);
                        item.SubItems.Add(descricao);
                        item.SubItems.Add(entreg);
                        finalizadoLV.Items.Add(item);
                    }
                }
            }
        }

        private void esperaLV_ItemActivate(object sender, EventArgs e)
        {
            int idVenda = int.Parse(esperaLV.FocusedItem.SubItems[0].Text);
            MessageBox.Show(idVenda.ToString());
            EntregadorForm form = new EntregadorForm(idVenda);
            form.ShowDialog();
        }
    }
}
